-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat-be: 지원서 작성 완료 시 이메일 발송 기능 #960
base: be/develop
Are you sure you want to change the base?
Conversation
@@ -68,6 +73,10 @@ public void submit(long applyFormId, ApplyFormSubmitRequest request) { | |||
AnswerCreateRequest answerCreateRequest = getAnswerCreateRequest(question, answerCreateRequests); | |||
answerService.saveAnswerReplies(answerCreateRequest, question, applicant); | |||
} | |||
|
|||
Club club = dashboard.getClub(); | |||
Hibernate.initialize(club); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
추후에 어떤 대상에게 보낸 이메일만 검색할 수 있는 기능을 넣는다면 현재 구조가 좋다고 생각하지만,, 추후의 유연성을 위해선 String 값인것도 좋을 것 같네요.
현재 상태에서 발신자를 String으로 변경한다면 동아리 이름 중복이 허용되었을 때, 내 동아리가 아닌 다른 동아리의 메일을 구분할 수 없을 것 같네요.
1735202171.885249 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
EventListener를 사용한 이유는, 지원폼이 DB에 안정적으로 저장한 뒤에 이메일을 전송하는 것이 맞다고 생각했기 때문입니다. 기존 비동기 이메일 전송 메서드를 지원폼 작성 메서드 내에서 호출하게 된다면, 지원폼이 저장되지 않았는데, 확인 이메일이 전송될 수 있는 문제점이 있다고 생각했기 때문입니다.
현재 publishEvent가 호출되는 곳에서 이메일 전송 메서드를 호출하면, 지원폼이 저장되지 않은 경우 이메일 전송 메서드에 도달하기 전에 에러가 발생하여 이메일이 전송되지 않을 것 같아요. 어떤 경우에 말씀해주신 상황이 나오는 지 말씀해주실 수 있나요?
@TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT) | ||
public void handleApplyFormEvent(ApplyFormEvent event) { | ||
|
||
log.info("시작"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
테스트때 사용한 로그인가용??ㅋㅋ
ApplyForm applyForm = event.applyForm(); | ||
Applicant applicant = event.applicant(); | ||
|
||
String subject = "지원 완료 안내"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
제목에 동아리 이름도 넣어주는건 어떤가요?
@@ -68,6 +73,10 @@ public void submit(long applyFormId, ApplyFormSubmitRequest request) { | |||
AnswerCreateRequest answerCreateRequest = getAnswerCreateRequest(question, answerCreateRequests); | |||
answerService.saveAnswerReplies(answerCreateRequest, question, applicant); | |||
} | |||
|
|||
Club club = dashboard.getClub(); | |||
Hibernate.initialize(club); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
추후에 어떤 대상에게 보낸 이메일만 검색할 수 있는 기능을 넣는다면 현재 구조가 좋다고 생각하지만,, 추후의 유연성을 위해선 String 값인것도 좋을 것 같네요.
현재 상태에서 발신자를 String으로 변경한다면 동아리 이름 중복이 허용되었을 때, 내 동아리가 아닌 다른 동아리의 메일을 구분할 수 없을 것 같네요.
목적
작업 세부사항
참고 사항
다음과 같이 이메일이 전송됩니다.
EventListener 방식을 사용했습니다
EventListener를 사용한 이유는, 지원폼이 DB에 안정적으로 저장한 뒤에 이메일을 전송하는 것이 맞다고 생각했기 때문입니다. 기존
비동기 이메일 전송
메서드를지원폼 작성
메서드 내에서 호출하게 된다면, 지원폼이 저장되지 않았는데, 확인 이메일이 전송될 수 있는 문제점이 있다고 생각했기 때문입니다.APPLYFORM_EMAIL
closes #959